EC2 Image Builderで作ったイメージを他アカウントに共有してみた #reinvent
こんにちは、中川です。
ついに re:Invent2019 が始まりました!
re:Invent2019 の第一弾アップデートの 1 つにEC2 Image Builderがございます。EC2 Image Builder は、イメージの作成、保守、検証、共有、および展開を簡素化します。
本ブログでは、EC2 Image Builder で作ったイメージを他のアカウントへの共有について、ご紹介します。
組織で統一したイメージを使用したい、イメージのライフサイクルを効率的に管理したい、というときにはまるサービスです。
EC2 Image Builder のイメージ作成手順については、以下のブログを参考にしてください。
共有に関する仕様
- 共有できる対象
- Components
- Images
- Image recipes
- Organization 管理下のアカウントに共有可能で、Organizationの利用が必須
- 暗号化を使用できない
- 自アカウントのリソースのみ共有可能(他のアカウントから共有されたリソースを共有できない)
やってみた
Organization を有効にしたアカウントで最初のイメージを作成したところから始めます。
AWS Resource Access Manager に接続し、[Create a resource share]をクリックします。
共有するリソースの名前を入力し、対象リソースとしてImage Builder Imagesを選択します。
最初に作成したイメージが表示されますので、チェックを有効にします。
プリンシパルでは、Organization の OU を選択し、一番下の[Create resource share]をクリックします。
共有リソースが表示されます。(Deleted のリソースはお試しで作成したもの)
OU 配下の AWS アカウントにスイッチロールします。スイッチロールしたアカウントの Resource Manager の左ペインから[Shared with me]をクリックすると、イメージが共有されていることを確認できます。
EC2 Image Builder に移動して、[Images]を選択すると、こちらでも共有されていることを確認できます。
以下の画像は AMI の一覧情報で、この時点でAMIは作成されておりません。EC2 Image Builder のイメージを共有しているため、そのアカウントで AMI を作成するには、EC2 Image Builder でパイプラインを作成し、パイプラインを実行する必要があります。
そのため、パイプラインを作成します。EC2 Image Builder で、[Create Image Pipeline]をクリックし、Browse to select an image から、共有したイメージを選択します。
その後は、ビルドやテストのレシピを選択を進めて、パイプラインを作成します。
パイプラインを作成したら[Run Pipeline]をクリックし、パイプラインを実行します。
パイプラインを実行すると、AMI が作成されていることを確認できました。
さいごに
EC2 Image Builder で作成したイメージを他のアカウントに共有してみました。EC2 Image Builder のリソースを共有するには、Organization が必須になりますので、ご注意ください。
ユースケースとして、組織の中で統制がきいたイメージを使う必要があり、また各プロジェクトごとにもイメージのライフサイクル管理が必要な場合は、イメージの共有は有用であると思いました。ただ、もしプロジェクトごとにイメージをリリースをしないけどイメージを共有はしたいようなケースがあれば、イメージではなくレシピやコンポーネントを共有したほうがいいケースもあるとも感じました。
EC2 Image Builder は、Golden AMI の管理がしやすくなる熱いアップデートですので、もっと深堀りして理解を深めていきたいです。